GtkSpinButton: Prevent public API from unsetting the adjustment
authorDebarshi Ray <debarshir@gnome.org>
Tue, 12 Aug 2014 15:45:53 +0000 (17:45 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 14 Aug 2014 03:42:11 +0000 (23:42 -0400)
A spin button really needs an adjustment to work. So don't let the
user unset the adjustment by passing NULL to
gtk_spin_button_set_adjustment.

https://bugzilla.gnome.org/show_bug.cgi?id=734660

gtk/gtkspinbutton.c

index f94b577ad1aaa02b101a2e48891bd3b416820e28..ddd4540dc94737e44814024c88c9fc29db996ff1 100644 (file)
@@ -575,8 +575,6 @@ gtk_spin_button_set_property (GObject      *object,
 
     case PROP_ADJUSTMENT:
       adjustment = GTK_ADJUSTMENT (g_value_get_object (value));
-      if (!adjustment)
-        adjustment = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
       gtk_spin_button_set_adjustment (spin_button, adjustment);
       break;
     case PROP_CLIMB_RATE:
@@ -717,8 +715,7 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
 
   priv->orientation = GTK_ORIENTATION_HORIZONTAL;
 
-  gtk_spin_button_set_adjustment (spin_button,
-                                  gtk_adjustment_new (0, 0, 0, 0, 0, 0));
+  gtk_spin_button_set_adjustment (spin_button, NULL);
 
   context = gtk_widget_get_style_context (GTK_WIDGET (spin_button));
   gtk_style_context_add_class (context, GTK_STYLE_CLASS_SPINBUTTON);
@@ -2271,6 +2268,9 @@ gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
 
   priv = spin_button->priv;
 
+  if (!adjustment)
+    adjustment = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+
   gtk_spin_button_configure (spin_button,
                              adjustment,
                              priv->climb_rate,